Evaluation of a ground region for landing a robot

ABSTRACT

A method of supporting robot(s) landing within a ground region is provided. The method includes accessing a map in which the ground region is tessellated into cells covering respective areas of the ground region. Each cell is classified as feasible to indicate a respective area is feasible for landing, or infeasible to indicate the respective area is infeasible for landing. The map is searched for clusters of adjoining cells that are classified as feasible, covering clusters of adjoining areas that define sub-regions within the ground region that are feasible for landing. The sub-regions are ranked according to a cost metric, and one of the sub-regions is selected according to the ranking. A geographic position of the selected sub-region is then output for use in at least one of guidance, navigation or control of the robot(s) to land at the selected sub-region within the ground region.

TECHNOLOGICAL FIELD

The present disclosure relates generally to robotics and, in particular,to one or more of the design, construction, operation or use ofautonomous robots such as autonomous or semi-autonomous vehicles.

BACKGROUND

Many modern robots and other machines are designed to operate withincreased autonomy and are less reliant on weld-trained operators tosafely operate. Some of these modern robots are manned while others areunmanned. In particular, a variety of unmanned vehicles include unmannedground vehicles (UGVs), unmanned aerial vehicles (UAVs), unmannedsurface vehicles (USVs), unmanned underwater vehicles (UUVs), unmannedspacecraft and the like. The use of unmanned vehicles has grown inrecent years and these unmanned vehicles are employed in a wide varietyof applications, including both military and civilian uses.

One focus in the field of robotics is in the improvement of autonomy,which often includes multiple aspects of robot operation. These aspectsof robot operation include automatic control of a given robot to supportremote human control. Another aspect is optimization systems (andassociated methods) to determine how, for a given robot or set ofrobots, tasks should be ordered and/or allocated. And yet another aspectof robot operation is automatic, real-time or near real-time dataprocessing, and exploitation in support of automatic route planning,mission execution and other activities.

Despite advancements, existing autonomy systems are typically configuredto address only one aspect of these activities, thereby focusing itsdesign of the underling autonomy algorithms and software architecture ona narrow mission set. This limits the extensibility of existing autonomysystems, as they are not well-equipped to support the addition of newmodules to the autonomy system. Furthermore, existing autonomy systemsmay or may not be structured for rapid adaptation to new platformsthrough parameterization.

Therefore it would be desirable to have a system and method that takesinto account at least some of the issues discussed above, as well asother possible issues.

BRIEF SUMMARY

Example implementations of the present disclosure are directed toselection of a sub-region within a ground region that is feasible forlanding a robot such as an aerial robot. According to exampleimplementations, the ground region is searched for sub-regions that arefeasible for landing. The sub-regions are ranked according to a costmetric, and perhaps also a categorization of the sub-regions. One of thesub-regions is selected according to the ranking (e.g., thehighest-ranked sub-region), and a geographic position of the selectedsub-region is output for use to land one or more robots at the selectedsub-region.

The present disclosure thus includes, without limitation, the followingexample implementations.

Some example implementations provide a method of supporting one or morerobots within a ground region, the method comprising accessing a map inwhich the ground region is tessellated into cells covering respectiveareas of the ground region, and each cell is classified as feasible toindicate a respective area is feasible for landing, or infeasible toindicate the respective area is infeasible for landing; searching themap for clusters of adjoining cells that are classified as feasible,covering clusters of adjoining areas that define sub-regions within theground region that are feasible for landing; ranking the sub-regionsaccording to a cost metric; and selecting one of the sub-regionsaccording to the ranking, the one of the sub-regions thereby a selectedsub-region.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, the method further comprises outputting a geographicposition of the selected sub-region for use in at least one of guidance,navigation or control of the one or more robots to land at the selectedsub-region within the ground region.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, the method further comprises constructing the map,constructing the map including receiving terrain data that describesterrain of the respective areas, the terrain described in terms of oneor more parameters including one or more of elevation, roughness orsurface normal; performing an evaluation of the respective areas asfeasible or infeasible for landing based on the terrain data; andconstructing the map in which the cells into which the ground region istessellated are classified as feasible or infeasible based on theevaluation.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, receiving the terrain data includes receiving one ormore terrain datasets, each terrain dataset describing the terrain ofthe respective areas in terms of a respective one of the one or moreparameters, and wherein performing the evaluation includes comparingdata of the terrain dataset with a corresponding parameter thresholdthat defines a boundary between feasible and infeasible in terms of therespective one of the one or more parameters, the correspondingparameter threshold being set based on one or more constraints of theone or more robots.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, the one or more parameters are a plurality ofparameters, and receiving the terrain data includes receiving aplurality of terrain datasets, each terrain dataset describing theterrain of the respective areas in terms of a respective one of theplurality of parameters, and wherein performing the evaluation includesdetermining scores of the respective areas from the plurality of terraindatasets, and comparing the scores with a corresponding threshold scorethat defines a boundary between feasible and infeasible, thecorresponding threshold score being set based on one or more constraintsof the one or more robots.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, receiving the terrain data includes receiving one ormore terrain datasets embodied as one or more characteristic maps of theground region.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, the map is expressed as a matrix of first values andsecond values arranged in the cells to cover the respective areas of theground region, the first values representing those of the cellsclassified as feasible, and the second values representing those of thecells classified as infeasible, and wherein searching the map includessearching the matrix for the clusters expressed as sub-matrices with allfirst values.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, the matrix is a first matrix of the first values andthe second values that are elements of the first matrix, and searchingthe matrix includes initializing a second matrix that corresponds to thefirst matrix; and traversing the first matrix beginning at a topleft-most one of the elements of the first matrix, and for each elementof the first matrix having the first value, updating a value of acorresponding element of the second matrix, wherein after the firstmatrix is traversed, the value of the corresponding element of thesecond matrix defines a square sub-matrix having a size of the value ineach dimension.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, searching the matrix includes searching the matrix forthe sub-matrices with all first values that are also of a target size orwithin a target range of sizes set based on one or more constraints ofthe one or more robots.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, ranking the sub-regions includes ranking thesub-regions in which one of the sub-regions designated as nominal isranked first, and others of the sub-regions are ranked according to thecost metric that includes distance from the others of the sub-regions tothe nominal.

In some example implementations of the method of any preceding exampleimplementation, or any combination of any preceding exampleimplementations, ranking the sub-regions includes categorizing thesub-regions into categories to which the sub-regions belong, and rankingthe sub-regions according to an order of priority of the categories.

Some example implementations provide an apparatus for supporting one ormore robots within a ground region, the apparatus comprising a memoryhaving computer-readable program code stored therein; and processingcircuitry configured to access the memory, and execute thecomputer-readable program code to cause the apparatus to at leastperform the method of any preceding example implementation, or anycombination of any preceding example implementations.

Some example implementations provide a computer-readable storage mediumfor supporting one or more robots within a ground region, thecomputer-readable storage medium being non-transitory and havingcomputer-readable program code stored therein that, in response toexecution by processing circuitry, causes an apparatus to at leastperform the method of any preceding example implementation, or anycombination of any preceding example implementations.

These and other features, aspects, and advantages of the presentdisclosure will be apparent from a reading of the following detaileddescription together with the accompanying figures, which are brieflydescribed below. The present disclosure includes any combination of two,three, four or more features or elements set forth in this disclosure,regardless of whether such features or elements are expressly combinedor otherwise recited in a specific example implementation describedherein. This disclosure is intended to be read holistically such thatany separable features or elements of the disclosure, in any of itsaspects and example implementations, should be viewed as combinableunless the context of the disclosure clearly dictates otherwise.

It will therefore be appreciated that this Brief Summary is providedmerely for purposes of summarizing some example implementations so as toprovide a basic understanding of some aspects of the disclosure.Accordingly, it will be appreciated that the above described exampleimplementations are merely examples and should not be construed tonarrow the scope or spirit of the disclosure in any way. Other exampleimplementations, aspects and advantages will become apparent from thefollowing detailed description taken in conjunction with theaccompanying figures which illustrate, by way of example, the principlesof some described example implementations.

BRIEF DESCRIPTION OF THE FIGURE(S)

Having thus described example implementations of the disclosure ingeneral terms, reference will now be made to the accompanying figures,which are not necessarily drawn to scale, and wherein:

FIG. 1 illustrates one type of robot, namely, an unmanned aerialvehicle, that may benefit from example implementations of the presentdisclosure;

FIG. 2 illustrates a system according to some example implementations;

FIG. 3 more illustrates a mission management system (MMS) according tosome example implementations;

FIG. 4 illustrates a scenario in which a robot is executing a mission inwhich the robot is to travel on a route to a destination with a groundregion, according to some example implementations;

FIG. 5 is a diagram of services that may be implemented by the MMS forsupporting one or more robots (in particular one or more aerial robots),according to some example implementations;

FIGS. 6 and 7 illustrate maps in which a ground region is tessellatedinto cells covering respective areas of the ground region, according tosome example implementations;

FIG. 8 illustrates terrain data including terrain datasets embodied ascharacteristic maps of a ground region, according to some exampleimplementations;

FIG. 9 illustrates a map expressed as a matrix of values that indicatesub-regions classified as feasible for landing a robot, according tosome example implementations;

FIGS. 10A, 10B, 10C, 10D, 10E, 10F and 10G are flowcharts illustratingvarious steps in a method of supporting one or more robots landingwithin a ground region, according to example implementations; and

FIG. 11 illustrates an apparatus according to some exampleimplementations.

DETAILED DESCRIPTION

Some implementations of the present disclosure will now be describedmore fully hereinafter with reference to the accompanying figures, inwhich some, but not all implementations of the disclosure are shown.Indeed, various implementations of the disclosure may be embodied inmany different forms and should not be construed as limited to theimplementations set forth herein; rather, these example implementationsare provided so that this disclosure will be thorough and complete, andwill fully convey the scope of the disclosure to those skilled in theart. For example, unless specified otherwise or clear from context,references to first, second or the like should not be construed to implya particular order. A feature may be described as being above anotherfeature (unless specified otherwise or clear from context) may insteadbe below, and vice versa; and similarly, features described as being tothe left of another feature else may instead be to the right, and viceversa. As used herein, unless specified otherwise or clear from context,the “or” of a set of operands is the “inclusive or” and thereby true ifand only if one or more of the operands is true, as opposed to the“exclusive or” which is false when all of the operands are true. Thus,for example, “[A] or [B]” is true if [A] is true, or if [B] is true, orif both [A] and [B] are true. Further, the articles “a” and “an” mean“one or more,” unless specified otherwise or clear from context to bedirected to a singular form. Like reference numerals refer to likeelements throughout. Furthermore, it should be understood that unlessotherwise specified, the terms “data,” “content,” “digital content,”“information,” and similar terms may be at times used interchangeably.

Example implementations of the present disclosure relate generally torobotics and, in particular, to one or more of the design, construction,operation or use of robots. As used herein, a robot is a machinedesigned and configurable to execute maneuvers in its environment. Therobot may be manned or unmanned. The robot may be fullyhuman-controlled, or the robot may be semi-autonomous or autonomous inwhich at least some of the maneuvers are executed independent of or withminimal human intervention. In some examples, the robot is operable invarious modes with various amounts of human control.

A robot designed and configurable to fly may at times be referred to asan aerial robot. A robot designed and configurable to operate with atleast some level of autonomy may at times be referred to as anautonomous robot, or an autonomous aerial robot in the case of anautonomous robot that is also designed and configurable to fly. Examplesof suitable robots include aerobots, androids, automatons, autonomousvehicles, explosive ordnance disposal robots, hexapods, industrialrobots, insect robots, microbots, nanobots, military robots, mobilerobots, rovers, service robots, surgical robots, walking robots and thelike. Other examples include a variety of unmanned vehicles, includingunmanned ground vehicles (UGVs), unmanned aerial vehicles (UAVs),unmanned surface vehicles (USVs), unmanned underwater vehicles (UUVs),unmanned spacecraft and the like. These may include autonomous cars,planes, trains, industrial vehicles, fulfillment center robots,supply-chain robots, robotic vehicles, mine sweepers, and the like.

FIG. 1 illustrates one type of robot, namely, a UAV 100, that maybenefit from example implementations of the present disclosure. Asshown, the UAV generally includes a fuselage 102, wings 104 extendingfrom opposing sides of the UAV in a mid-section of the fuselage, and anempennage or tail assembly 106 at a rear end of the fuselage. The tailassembly includes a vertical stabilizer 108 and two horizontalstabilizers 110 extending from opposing sides of the UAV. Rotors 112 and114 are mounted to respectively the wings and the end of the tailassembly for lifting and propelling the UAV during flight.

FIG. 2 illustrates a system 200 according to some exampleimplementations of the present disclosure. The system may include any ofa number of different subsystems (each an individual system) forperforming one or more functions or operations. As shown, in someexamples, the system includes a control station 202 and one or morerobots 204 (e.g., one or more UAVs 100). The control station providesfacilities for communication with or control of the one or more robots,such as by wired or wireless data links directly or across one or morenetworks 206. In some examples, the control station may be a groundstation, and not in all cases control the robots. In this regard, thecontrol station may be configured to monitor the robots. The controlstation may initiate mission, but the control station may not controlthe robots to maneuver. At times, then, the control station may enableor provide a distributed network/server of software functions.

The robot 204 includes a robot management system (RMS) 208 and a missionmanagement system (MMS) 210. The RMS is a robot-specific subsystemconfigured to manage subsystems and other components of the robot. Thesesubsystems and other components include, for example, maneuver controls,landing gear, onboard environmental systems, electrical, pneumatic andhydraulic systems, communications systems, navigation systems and othersubsystems and components for controlling operation and maneuvering ofthe robot. The RMS is configured to accept maneuver commands such aswaypoints and/or steering commands, and control the robot to followthose maneuver commands. In the context of a vehicle, the RMS is attimes referred to as a vehicle management system (VMS).

The MMS 210 is a subsystem configured to manage missions of the robot204. A mission is a deployment of the robot (one or more robots) toachieve one or more mission objectives. A mission may be decomposed intomaneuvers of the robot with optional sensor and/or effector scheduling,and the MMS may execute tasks to manage the robot to execute maneuverswith specific parameters and capabilities. The MMS 210 includessubsystems to process sensor data to situational awareness, plan tasksfor the robot 204 (or multiple robots), coordinate with teams to assigntasks, execute assigned tasks. The MMS is also configured to interfacewith the RMS 208, and in some examples the control station 202. Althoughthe MMS is shown on the robot 204, the MMS may instead be at the controlstation; or in some examples, the MMS may be distributed between therobot and the control station.

In some examples, the MMS 210 provides a complete, end-to-end autonomyarchitecture with open system architecture standards and parameterizedto allow rapid extension and reapplication to a variety of robots. Theflexibility of the MMS enables an operator to code it once, but to applyit anywhere. The MMS may therefore be applied to virtually any robotthat applies, or benefits from, autonomy. The MMS may include anadaptable autonomy architecture that is applicable to a variety ofrobots, including those identified above. A benefit of the MMS istherefore not only in the specific contents, but also in the specificdetails of the architecture, its subroutines, and in the interfacesbetween those subroutines and other systems/devices that support rapidextensibility and adaptability of the MMS to a variety of domains.

FIG. 3 more particularly illustrates the MMS 210 according to someexample implementations of the present disclosure. The MMS may includeany of a number of different subsystems (each an individual system) forperforming one or more functions or operations. As shown, in someexamples, the MMS includes an interface subsystem 302, a situationalawareness subsystem 304, a mission planning subsystem 306, a missioncoordination subsystem 308, and a mission execution subsystem 310. Assuggested above, in some examples, the subsystems of the MMS may be onthe robot 204, at the control station 202, or distributed between therobot and the control station. The subsystems may be configured tocommunicate with one another directly, over a communication bus 312, oracross the network(s) 206 in examples in which the MMS is distributedbetween the robot and the control station.

The subsystems enable the MMS 210 of the robot 204 to interface with thesystem 200, perform situational awareness, plan a mission including aplurality of tasks, coordinate the plurality of tasks and thereby themission with other robots 204, and execute the mission. For example, theMMS may use the interface subsystem 302 to interface with varioussensors onboard the robot, the RMS 208, the control station 202 and/orother robots. The MMS may use the situational awareness subsystem 304 toacquire sensor data and maintain an awareness of the state of theenvironment in which the robot is operating. The MMS may use the missionplanning subsystem 306 to plan a mission including or associated with aplurality of tasks, and which may incorporate rules of engagement,tactics and other constraints on operations. The MMS may likewise usethe mission planning subsystem to dynamically replan a mission in whichchanges to the mission are made in real-time or near real-time as themission is executed. The MMS may use the mission coordination subsystem308 to coordinate the plurality of tasks of the mission with otherrobots and users, where agreed-upon tasks may then be executed by theMMS using the mission execution subsystem 310.

In some examples, the mission planning subsystem 306 is configured toplan a mission, and provide mission data for the mission to the missionexecution subsystem 310 (directly or via the mission coordinationsubsystem 308). The mission and in particular the plurality of tasks ofthe mission may then be executed through the mission execution subsystemusing the mission data. This may include the MMS 210 configured to sendone or more maneuver commands to the RMS 208 to control the robot tofollow the maneuver commands and thereby execute respective maneuvers.

According to some example implementations of the present disclosure, theMMS 210 is also configured to implement software functionality orfunctionalities (at times referred to as services) during a mission tosupport the robot 204 (in particular an aerial robot). During a mission,the robot may take a path, and this path may be described by a series ofwaypoints that define a route the robot will travel. The robot travelswith a velocity (speed and direction of motion), and the series ofwaypoints and velocities at that define the route with respect to timedefines a trajectory of the robot (at times referred to as a track ofthe robot). FIG. 4 illustrates a scenario 400 in which the robot isexecuting a mission in which the robot is to travel on a route 402 to adestination 404 with a ground region 406, according to some exampleimplementations. The destination may be expressed in a number ofdifferent manners, such as a zone in which the aerial robot may land,i.e., a landing zone (LZ). The landing zone may include a preparedlanding pad and be considered a prepared landing zone, or the landingzone may be unprepared without a landing pad but otherwise feasible forlanding the robot.

FIG. 5 is a diagram of services 500 that may be implemented by the MMS210 for supporting one or more robots 204 (in particular aerial robots)landing, according to some example implementations. As shown, theservices may include a manager 502service, a site selection 504 serviceand a zone evaluation 506 service. In some examples, the manager serviceand site selection service may be implemented by the mission executionsubsystem 310 of the MMS, and the zone evaluation service may beimplemented by the situational awareness subsystem 304.

According to some example implementations, the manager 502 service isconfigured to manage execution of a mission including a plurality oftasks, and which includes travel of one or more robots 204 on a route402 to a destination 404 with a ground region 406. The manager serviceis configured to call on the site selection 504 service to provide ageographic position of a sub-region of the ground region, which in someexamples is expressed as the sub-region's ECEF (earth-centered, earthfixed) position. The site selection service may select the sub-regionbased on its feasibility for landing, and from an evaluation usingterrain data from the zone evaluation 506 service. The manager serviceis configured to use the geographic position of the selected sub-regionin at least one of guidance, navigation or control of the one or morerobots 204 to land at the selected sub-region.

In some examples, the site selection service for one robot may providethe geographic position of the selected sub-region to the managerservice of the robot 204. Additionally or alternatively, the siteselection service may provide the geographic position of the selectedsub-region to at least one other robot, and in particular itscorresponding manager service, which may be executing the same missionas the robot. The corresponding manager service of the other robot maythen similarly use the geographic position in at least one of guidance,navigation or control of the other robot to also land at the selectedsub-region.

As also shown, in various examples, the selection 504 service includesone or more sub-services (each an individual service) such as aclustering 508 service and a ranking 510 service. The clustering serviceis configured to access a map 512 in which the ground region 406 istessellated into cells 514 covering respective areas of the groundregion. In the map, each cell is classified as feasible to indicate arespective area is feasible for landing, or infeasible to indicate therespective area is infeasible for landing.

The clustering 508 service is configured to search the map for clusters516 of adjoining cells that are classified as feasible, coveringclusters of adjoining areas that define sub-regions within the groundregion 406 that are feasible for landing. The ranking 510 service isconfigured to rank the sub-regions according to a cost metric, andselect one of the sub-regions according to the ranking. In someexamples, the ranking service is configured to determine correspondingscores of the sub-regions from the cost metric; and in some of theseexamples, the ranking service is configured to rank the sub-regionsbased on the corresponding scores. The one of the sub-regions is therebya selected sub-region. The selection 504 service is then configured tooutput the geographic position of the selected sub-region.

FIGS. 6 and 7 illustrate examples of suitable maps 600, 700 that in someexamples may correspond to the map 512. FIG. 7 in particular illustratesan example map in which the ground region 406 is tessellated into cells702 covering respective areas of the ground region, which may correspondto cells 514. In the map, each cell has a first value (e.g., “0”) torepresent the cell is classified as feasible (indicating a respectivearea is feasible for landing), or a second value (e.g., “1”) torepresent the cell is classified as infeasible (indicating therespective area is infeasible for landing). FIG. 7 further illustratesclusters 704 of adjoining cells that may correspond to clusters 516 ofadjoining cells that are classified as feasible.

Returning to FIG. 5, in some examples, the selection 504 service alsoincludes a feasibility evaluation 518 service configured to constructthe map 512. In this regard, the feasibility evaluation service isconfigured to receive terrain data that describes terrain of therespective areas of the ground region 406. The terrain data may bereceived from the zone evaluation 506 service, and describe the terrainin terms of one or more parameters including one or more of elevation,roughness or surface normal. In some examples, the terrain data includesone or more terrain datasets; and in some of these examples, eachterrain dataset describes the terrain of the respective areas in termsof a respective one of the one or more parameters. FIG. 8 illustrates anexample of terrain data 800 including terrain datasets 802, 804, 806embodied as characteristic maps of the ground region 406.

In some examples, the terrain data is or includes sensor data from anyof a number of different sensors that may be operatively incommunication with the robot 204, such as any of a number of differentsensors including those employing technologies such as acoustics, radio,optics and the like. More particular examples of suitable sensorsinclude those employing radar, lidar, infrared sensors, cameras and thelike. A number of sensors such as those employing radar, lidar, infraredsensors, cameras and the like generate images from reflectedelectromagnetic waves (e.g., radio, infrared radiation, visible light)or mechanical waves (e.g., sound waves). These images may correspond toterrain data (e.g., characteristic maps) or be used to derive terraindata.

The feasibility evaluation 518 service is configured to receive theterrain data, perform an evaluation of the respective areas of theground region 406 as feasible or infeasible for landing based on theterrain data, and to construct the map 512 based on the evaluation. Insome examples in which the terrain data includes terrain datasets, thefeasibility evaluation service is configured to compare data of theterrain dataset with a corresponding parameter threshold that defines aboundary between feasible and infeasible in terms of the respective oneof the one or more parameters. In some examples, the correspondingparameter threshold is set based on one or more constraints of the oneor more robots 204.

In some examples in which the one or more parameters are a plurality ofparameters (e.g., elevation, roughness, surface normal), the feasibilityevaluation 518 service is configured to receive a plurality of terraindatasets each of which describes the terrain in terms of a respectiveone of the plurality of parameters. In some of these examples, thefeasibility evaluation service is configured to determine scores of therespective areas of the ground region 406 from the plurality of terraindatasets. The scores are then compared with a corresponding thresholdscore that defines a boundary between feasible and infeasible, which insome examples is set based on one or more constraints of the one or morerobots 204.

As suggested above, in some examples, the map 512 is expressed as amatrix of first values and second values arranged in the cells 514 tocover the respective areas of the ground region 406. Again, for example,FIG. 7 illustrates a map 700 in which the ground region is tessellatedinto cells 702 arranged in a matrix of first values (e.g., “0”) andsecond values (e.g., “1”). The first values represent those of the cellsclassified as feasible, and the second values represent those of thecells classified as infeasible. In some of these examples, theclustering 508 service is configured to search the matrix for theclusters 516 expressed as sub-matrices with all first values, which areillustrated as clusters 704 in FIG. 7. In some examples, the clusteringservice is configured to search the matrix for the sub-matrices with allfirst values that are also of a target size or within a target range ofsizes set based on one or more constraints of the one or more robots204. In this regard, the target size or target range of sizes may dependon a footprint of the robot, which may also determine or otherwiseaffect the scores and thereby feasibility of the respective areas of theground region.

In some further examples, the matrix (e.g., map 700) is a first matrixof the first values and the second values that are elements of the firstmatrix. In some of these examples, the clustering 508 service isconfigured to initialize a second matrix that corresponds to the firstmatrix. The clustering service is configured to traverse the firstmatrix beginning at a top left-most one of the elements of the firstmatrix, and for each element of the first matrix having the first value,update a value of a corresponding element of the second matrix. Afterthe first matrix is traversed, the value of the corresponding element ofthe second matrix defines a square sub-matrix having a size of the valuein each dimension. FIG. 9 illustrates a map 900 expressed as a secondmatrix with updated values after the first matrix (e.g., map 700) istraversed, and including sub-matrices 902.

In more mathematical notation, in some further examples, the matrix(e.g., map 700) is a first matrix A of the first values and the secondvalues that are elements a of the first matrix. In some of theseexamples, the clustering 508 service is configured to initialize asecond matrix B that corresponds to the first matrix A with all 0's. Theclustering service is configured to traverse the first matrix Abeginning at a top left-most one of the elements a₁₁, and for eachelement a_(xy) having the first value, update a value of a correspondingelement b_(xy) of the second matrix B according to:

b _(xy)=min(b _(x−1y) , b _(xy−1) , b _(x−1y−1))+1

After the first matrix A is traversed, the value of the correspondingelement b_(xy) defines a square sub-matrix 902 having a size of thevalue in each dimension x, y, and a bottom right-most element a_(xy).

Returning to FIG. 5, in some examples, the ranking 510 service isconfigured to rank the sub-regions (defined by clusters of adjoiningareas covered by the clusters 516 of adjoining cells). One of thesub-regions is designated as nominal and ranked first, and others of thesub-regions are ranked according to the cost metric that includesdistance from the others of the sub-regions to the nominal. The nominalsub-region of the ground region 406 destination 404 may be designated ina number of different manners, and in some examples, the nominalsub-region is designated in mission data provided from the missionplanning subsystem 306 to the mission execution subsystem 310 of the MMS210.

In some examples, the ranking 510 service is configured to categorizethe sub-regions into categories to which the sub-regions belong, andrank the sub-regions according to an order of priority of thecategories. The categories may be represented as lists where each listentry for a sub-region includes data such as one or more of thesub-region's size, geographic position (e.g., ECEF position) or costmetric. The categories may constrain the ranking of the best landinglocations further than just through a cost metric.

In a more particular example, the sub-regions (classified as feasiblefor landing) may be categorized in order of priority as:

-   -   Category A: Sub-regions including a prepared landing pad        (predefined, feasible sub-regions that have been approved);    -   Category B: Ideal sub-regions without a prepared landing pad        (those classified as feasible and are also of the target size or        within the target range of sizes);    -   Category C: Maximum sub-regions that are classified as feasible        but are without a prepared landing pad; or    -   Category D: Invalid sub-regions.        To meet the criteria set for category A, a sub-region may be        within a certain proximity to prepared landing pads that may be        indicated in the mission data. This may be determined by        comparison of the L² (Euclidean) distance between the        sub-region's geographic position and a list of prepared landing        pad positions to a certain threshold distance T, based on the        sub-region's resolution (e.g., in meters). A sub-region at a        geographic position within the threshold may be deemed a        category A sub-region.

Category B is for those sub-regions that are not within the certainproximity to the prepared landing pads, but that are classified asfeasible and are also of the target size or within the target range ofsizes. In category C are those sub-regions that do not quality forcategory A or category B, classified as feasible and greater in sizethan the target size or target range of sizes. In category D are thosesub-regions that are designated as invalid.

Returning to FIG. 5, again, the selection 504 service of the MMS 210 mayprovide the geographic position of a selected sub-region of the groundregion 406 destination 404, such as a highest-ranked one of thesub-regions, to the manager 502 service. The manager service may use thegeographic position of the selected sub-region in at least one ofguidance, navigation or control of the robot 204 to the land at theselected sub-region. In some examples, the manager service is configuredto cause the robot to travel to and land at the selected sub-region.This may include the MMS configured to send one or more maneuvercommands to the RMS 208 to control the robot to follow the maneuvercommands and thereby travel to and land at the selected sub-region.

In some examples, the selection 504 service may provide the category ofthe selected sub-region with its geographic position. In the case ofthose sub-regions designated as invalid (category D), the category mayinform the manager 502 service to avoid use of the selected sub-region.This may be extended to examples in which the site selection service mayprovide the manager service with geographic positions of the sub-regionscategorized into categories, and ranked according to an order ofpriority of the categories. The manager service may then select one ofthe sub-regions according to the ranking, wait for an update of thesub-regions from the site selection service, or use another service toselect one of the sub-regions.

FIGS. 10A, 10B, 10C, 10D, 10E, 10F and 10G are flowcharts illustratingvarious steps in a method 1000 of supporting one or more robots 204within a ground region 406, according to example implementations of thepresent disclosure. As shown at block 1002 of FIG. 10A, the methodincludes accessing a map 512 in which the ground region is tessellatedinto cells 514 covering respective areas of the ground region. In themap, each cell is classified as feasible (e.g., “0”) to indicate arespective area is feasible for landing, or infeasible (e.g., “1”) toindicate the respective area is infeasible for landing.

The method 1000 includes searching the map for clusters 516 of adjoiningcells that are classified as feasible, covering clusters of adjoiningareas that define sub-regions within the ground region 406 that arefeasible for landing, as shown at block 1004. The method includesranking the sub-regions according to a cost metric, and selecting one ofthe sub-regions according to the ranking, the one of the sub-regionsthereby a selected sub-region, as shown at blocks 1006 and 1008. And themethod includes outputting a geographic position of the selectedsub-region for use in at least one of guidance, navigation or control ofthe one or more robots to land at the selected sub-region within theground region, as shown at block 1010.

In some examples, the method 1000 further includes constructing the map512, as shown at 1012 in FIG. 10B. As shown at block 1014, constructingthe map includes receiving terrain data 800 that describes terrain ofthe respective areas, with the terrain described in terms of one or moreparameters including one or more of elevation, roughness or surfacenormal. An evaluation of the respective areas as feasible or infeasiblefor landing is performed based on the terrain data, as shown at block1016. The map (in which the cells 514 into which the ground region 406is tessellated are classified as feasible or infeasible) is constructedbased on the evaluation, as shown at block 1018.

In some examples, receiving the terrain data 800 at block 1014 includesreceiving one or more terrain datasets 802, 804, 806, which in somefurther examples are embodied as one or more characteristic maps of theground region 406. Each terrain dataset describes the terrain of therespective areas in terms of a respective one of the one or moreparameters. In some of these examples, performing the evaluation atblock 1016 includes comparing data of the terrain dataset with acorresponding parameter threshold that defines a boundary betweenfeasible and infeasible in terms of the respective one of the one ormore parameters, as shown at block 1016A of FIG. 10C. Also in some ofthese examples, the corresponding parameter threshold is set based onone or more constraints of the one or more robots 204.

In some examples, the one or more parameters are a plurality ofparameters, and receiving the terrain data 800 at block 1014 includesreceiving a plurality of terrain datasets 802, 804, 806. Similar toabove, each terrain dataset describing the terrain of the respectiveareas in terms of a respective one of the plurality of parameters. Insome of these examples, performing the evaluation at block 1016 includesdetermining scores of the respective areas from the plurality of terraindatasets, as shown at block 1016B of FIG. 10D. The scores are comparedwith a corresponding threshold score that defines a boundary betweenfeasible and infeasible, as shown at block 1016C. In some of theseexamples, the corresponding threshold score is set based on one or moreconstraints of the one or more robots.

In some examples, the map 512 is expressed as a matrix 700 of firstvalues and second values arranged in the cells 514 to cover therespective areas of the ground region 406. The first values representthose of the cells classified as feasible, and the second valuesrepresent those of the cells classified as infeasible. In some of theseexamples, searching the map at block 1004 includes searching the matrixfor the clusters 516 expressed as sub-matrices with all first values, asshown at block 1020 of FIG. 10E. In some examples, searching the matrix700 at block 1020 includes searching the matrix for the sub-matriceswith all first values that are also of a target size or within a targetrange of sizes set based on one or more constraints of the one or morerobots 204.

In some further examples, the matrix 700 is a first matrix of the firstvalues and the second values that are elements of the first matrix. Insome of these examples, searching the matrix at block 1020 includesinitializing a second matrix B 900 that corresponds to the first matrix,and traversing the first matrix beginning at a top left-most one of theelements of the first matrix, as shown at blocks 1022 and 1024 of FIG.10F. In this regard, traversing the first matrix includes, and for eachelement of the first matrix having the first value, updating a value ofa corresponding element of the second matrix B. After the first matrixis traversed, the value of the corresponding element of the secondmatrix defines a square sub-matrix 902 having a size of the value ineach dimension.

In some examples, ranking the sub-regions at block 1006 includes rankingthe sub-regions in which one of the sub-regions designated as nominal isranked first, and others of the sub-regions are ranked according to thecost metric that includes distance from the others of the sub-regions tothe nominal. In some examples, ranking the sub-regions includescategorizing the sub-regions into categories to which the sub-regionsbelong, and ranking the sub-regions according to an order of priority ofthe categories, as shown at blocks 1026 and 1028 of FIG. 10G.

According to example implementations of the present disclosure, the MMS210 and its subsystems including the interface subsystem 302,situational awareness subsystem 304, mission planning subsystem 306,mission coordination subsystem 308 and mission execution subsystem 310may be implemented by various means. Means for implementing the MMS andits subsystems may include hardware, alone or under direction of one ormore computer programs from a computer-readable storage medium. In someexamples, one or more apparatuses may be configured to function as orotherwise implement the MMS and its subsystems shown and describedherein. In examples involving more than one apparatus, the respectiveapparatuses may be connected to or otherwise in communication with oneanother in a number of different manners, such as directly or indirectlyvia a wired or wireless network or the like.

FIG. 11 illustrates an apparatus 1100 according to some exampleimplementations of the present disclosure. Generally, an apparatus ofexemplary implementations of the present disclosure may comprise,include or be embodied in one or more fixed or portable electronicdevices. The apparatus may include one or more of each of a number ofcomponents such as, for example, processing circuitry 1102 (e.g.,processor unit) connected to a memory 1104 (e.g., storage device).

The processing circuitry 1102 may be composed of one or more processorsalone or in combination with one or more memories. The processingcircuitry is generally any piece of computer hardware that is capable ofprocessing information such as, for example, data, computer programsand/or other suitable electronic information. The processing circuitryis composed of a collection of electronic circuits some of which may bepackaged as an integrated circuit or multiple interconnected integratedcircuits (an integrated circuit at times more commonly referred to as a“chip”). The processing circuitry may be configured to execute computerprograms, which may be stored onboard the processing circuitry orotherwise stored in the memory 1104 (of the same or another apparatus).

The processing circuitry 1102 may be a number of processors, amulti-core processor or some other type of processor, depending on theparticular implementation. Further, the processing circuitry may beimplemented using a number of heterogeneous processor systems in which amain processor is present with one or more secondary processors on asingle chip. As another illustrative example, the processing circuitrymay be a symmetric multi-processor system containing multiple processorsof the same type. In yet another example, the processing circuitry maybe embodied as or otherwise include one or more ASICs, FPGAs or thelike. Thus, although the processing circuitry may be capable ofexecuting a computer program to perform one or more functions, theprocessing circuitry of various examples may be capable of performingone or more functions without the aid of a computer program. In eitherinstance, the processing circuitry may be appropriately programmed toperform functions or operations according to example implementations ofthe present disclosure.

The memory 1104 is generally any piece of computer hardware that iscapable of storing information such as, for example, data, computerprograms (e.g., computer-readable program code 1106) and/or othersuitable information either on a temporary basis and/or a permanentbasis. The memory may include volatile and/or non-volatile memory, andmay be fixed or removable. Examples of suitable memory include randomaccess memory (RAM), read-only memory (ROM), a hard drive, a flashmemory, a thumb drive, a removable computer diskette, an optical disk, amagnetic tape or some combination of the above. Optical disks mayinclude compact disk-read only memory (CD-ROM), compact disk-read/write(CD-R/W), DVD or the like. In various instances, the memory may bereferred to as a computer-readable storage medium. The computer-readablestorage medium is a non-transitory device capable of storinginformation, and is distinguishable from computer-readable transmissionmedia such as electronic transitory signals capable of carryinginformation from one location to another. Computer-readable medium asdescribed herein may generally refer to a computer-readable storagemedium or computer-readable transmission medium.

In addition to the memory 1104, the processing circuitry 1102 may alsobe connected to one or more interfaces for displaying, transmittingand/or receiving information. The interfaces may include acommunications interface 1108 (e.g., communications unit) and/or one ormore user interfaces. The communications interface may be configured totransmit and/or receive information, such as to and/or from otherapparatus(es), network(s) or the like. The communications interface maybe configured to transmit and/or receive information by physical (wired)and/or wireless communications links. Examples of suitable communicationinterfaces include a network interface controller (NIC), wireless NIC(WNIC) or the like.

The user interfaces may include a display 1110 and/or one or more userinput interfaces 1112 (e.g., input/output unit). The display may beconfigured to present or otherwise display information to a user,suitable examples of which include a liquid crystal display (LCD),light-emitting diode display (LED), plasma display panel (PDP) or thelike. The user input interfaces may be wired or wireless, and may beconfigured to receive information from a user into the apparatus, suchas for processing, storage and/or display. Suitable examples of userinput interfaces include a microphone, image or video capture device,keyboard or keypad, joystick, touch-sensitive surface (separate from orintegrated into a touchscreen), biometric sensor or the like. The userinterfaces may further include one or more interfaces for communicatingwith peripherals such as printers, scanners or the like.

As indicated above, program code instructions may be stored in memory,and executed by processing circuitry that is thereby programmed, toimplement functions of the systems, subsystems, tools and theirrespective elements described herein. As will be appreciated, anysuitable program code instructions may be loaded onto a computer orother programmable apparatus from a computer-readable storage medium toproduce a particular machine, such that the particular machine becomes ameans for implementing the functions specified herein. These programcode instructions may also be stored in a computer-readable storagemedium that can direct a computer, a processing circuitry or otherprogrammable apparatus to function in a particular manner to therebygenerate a particular machine or particular article of manufacture. Theinstructions stored in the computer-readable storage medium may producean article of manufacture, where the article of manufacture becomes ameans for implementing functions described herein. The program codeinstructions may be retrieved from a computer-readable storage mediumand loaded into a computer, processing circuitry or other programmableapparatus to configure the computer, processing circuitry or otherprogrammable apparatus to execute operations to be performed on or bythe computer, processing circuitry or other programmable apparatus.

Retrieval, loading and execution of the program code instructions may beperformed sequentially such that one instruction is retrieved, loadedand executed at a time. In some example implementations, retrieval,loading and/or execution may be performed in parallel such that multipleinstructions are retrieved, loaded, and/or executed together. Executionof the program code instructions may produce a computer-implementedprocess such that the instructions executed by the computer, processingcircuitry or other programmable apparatus provide operations forimplementing functions described herein.

Execution of instructions by a processing circuitry, or storage ofinstructions in a computer-readable storage medium, supportscombinations of operations for performing the specified functions. Inthis manner, an apparatus 1100 may include a processing circuitry 1102and a computer-readable storage medium or memory 1104 coupled to theprocessing circuitry, where the processing circuitry is configured toexecute computer-readable program code 1106 stored in the memory. Itwill also be understood that one or more functions, and combinations offunctions, may be implemented by special purpose hardware-based computersystems and/or processing circuitry which perform the specifiedfunctions, or combinations of special purpose hardware and program codeinstructions.

Many modifications and other implementations of the disclosure set forthherein will come to mind to one skilled in the art to which thedisclosure pertains having the benefit of the teachings presented in theforegoing description and the associated figures. Therefore, it is to beunderstood that the disclosure is not to be limited to the specificimplementations disclosed and that modifications and otherimplementations are intended to be included within the scope of theappended claims. Moreover, although the foregoing description and theassociated figures describe example implementations in the context ofcertain example combinations of elements and/or functions, it should beappreciated that different combinations of elements and/or functions maybe provided by alternative implementations without departing from thescope of the appended claims. In this regard, for example, differentcombinations of elements and/or functions than those explicitlydescribed above are also contemplated as may be set forth in some of theappended claims. Although specific terms are employed herein, they areused in a generic and descriptive sense only and not for purposes oflimitation.

What is claimed is:
 1. An apparatus for supporting one or more robotswithin a ground region, the apparatus comprising: a memory havingcomputer-readable program code stored therein; and processing circuitryconfigured to access the memory, and execute the computer-readableprogram code to cause the apparatus to at least: access a map in whichthe ground region is tessellated into cells covering respective areas ofthe ground region, and each cell is classified as feasible to indicate arespective area is feasible for landing, or infeasible to indicate therespective area is infeasible for landing; search the map for clustersof adjoining cells that are classified as feasible, covering clusters ofadjoining areas that define sub-regions within the ground region thatare feasible for landing; rank the sub-regions according to a costmetric; and select one of the sub-regions according to the ranking, theone of the sub-regions thereby a selected sub-region.
 2. The apparatusof claim 1, wherein the processing circuitry is configured to executethe computer-readable program code to cause the apparatus to furtheroutput a geographic position of the selected sub-region for use in atleast one of guidance, navigation or control of the one or more robotsto land at the selected sub-region within the ground region.
 3. Theapparatus of claim 1, wherein the processing circuitry is configured toexecute the computer-readable program code to cause the apparatus tofurther construct the map, including the apparatus caused to at least:receive terrain data that describes terrain of the respective areas, theterrain described in terms of one or more parameters including one ormore of elevation, roughness or surface normal; perform an evaluation ofthe respective areas as feasible or infeasible for landing based on theterrain data; and construct the map in which the cells into which theground region is tessellated are classified as feasible or infeasiblebased on the evaluation.
 4. The apparatus of claim 3, wherein theapparatus caused to receive the terrain data includes the apparatuscaused to receive one or more terrain datasets, each terrain datasetdescribing the terrain of the respective areas in terms of a respectiveone of the one or more parameters, and wherein the apparatus caused toperform the evaluation includes the apparatus caused to compare data ofthe terrain dataset with a corresponding parameter threshold thatdefines a boundary between feasible and infeasible in terms of therespective one of the one or more parameters, the correspondingparameter threshold being set based on one or more constraints of theone or more robots.
 5. The apparatus of claim 3, wherein the one or moreparameters are a plurality of parameters, and the apparatus caused toreceive the terrain data includes the apparatus caused to receive aplurality of terrain datasets, each terrain dataset describing theterrain of the respective areas in terms of a respective one of theplurality of parameters, and wherein the apparatus caused to perform theevaluation includes the apparatus caused to determine scores of therespective areas from the plurality of terrain datasets, and compare thescores with a corresponding threshold score that defines a boundarybetween feasible and infeasible, the corresponding threshold score beingset based on one or more constraints of the one or more robots.
 6. Theapparatus of claim 3, wherein the apparatus caused to receive theterrain data includes the apparatus caused to receive one or moreterrain datasets embodied as one or more characteristic maps of theground region.
 7. The apparatus of claim 1, wherein the map is expressedas a matrix of first values and second values arranged in the cells tocover the respective areas of the ground region, the first valuesrepresenting those of the cells classified as feasible, and the secondvalues representing those of the cells classified as infeasible, andwherein the apparatus caused to search the map includes the apparatuscaused to search the matrix for the clusters expressed as sub-matriceswith all first values.
 8. The apparatus of claim 7, wherein the matrixis a first matrix of the first values and the second values that areelements of the first matrix, and the apparatus caused to search thematrix includes the apparatus caused to at least: initialize a secondmatrix that corresponds to the first matrix; and traverse the firstmatrix beginning at a top left-most one of the elements of the firstmatrix, and for each element of the first matrix having the first value,update a value of a corresponding element of the second matrix, whereinafter the first matrix is traversed, the value of the correspondingelement of the second matrix defines a square sub-matrix having a sizeof the value in each dimension.
 9. The apparatus of claim 7, wherein theapparatus is caused to search the matrix for the sub-matrices with allfirst values that are also of a target size or within a target range ofsizes set based on one or more constraints of the one or more robots.10. The apparatus of claim 1, wherein the apparatus is caused to rankthe sub-regions in which one of the sub-regions designated as nominal isranked first, and others of the sub-regions are ranked according to thecost metric that includes distance from the others of the sub-regions tothe nominal.
 11. The apparatus of claim 1, wherein the apparatus causedto rank the sub-regions includes the apparatus caused to categorize thesub-regions into categories to which the sub-regions belong, and rankthe sub-regions according to an order of priority of the categories. 12.A method of supporting one or more robots within a ground region, themethod comprising: accessing a map in which the ground region istessellated into cells covering respective areas of the ground region,and each cell is classified as feasible to indicate a respective area isfeasible for landing, or infeasible to indicate the respective area isinfeasible for landing; searching the map for clusters of adjoiningcells that are classified as feasible, covering clusters of adjoiningareas that define sub-regions within the ground region that are feasiblefor landing; ranking the sub-regions according to a cost metric; andselecting one of the sub-regions according to the ranking, the one ofthe sub-regions thereby a selected sub-region.
 13. The method of claim12 further comprising outputting a geographic position of the selectedsub-region for use in at least one of guidance, navigation or control ofthe one or more robots to land at the selected sub-region within theground region.
 14. The method of claim 12 further comprisingconstructing the map, constructing the map including: receiving terraindata that describes terrain of the respective areas, the terraindescribed in terms of one or more parameters including one or more ofelevation, roughness or surface normal; performing an evaluation of therespective areas as feasible or infeasible for landing based on theterrain data; and constructing the map in which the cells into which theground region is tessellated are classified as feasible or infeasiblebased on the evaluation.
 15. The method of claim 14, wherein receivingthe terrain data includes receiving one or more terrain datasets, eachterrain dataset describing the terrain of the respective areas in termsof a respective one of the one or more parameters, and whereinperforming the evaluation includes comparing data of the terrain datasetwith a corresponding parameter threshold that defines a boundary betweenfeasible and infeasible in terms of the respective one of the one ormore parameters, the corresponding parameter threshold being set basedon one or more constraints of the one or more robots.
 16. The method ofclaim 14, wherein the one or more parameters are a plurality ofparameters, and receiving the terrain data includes receiving aplurality of terrain datasets, each terrain dataset describing theterrain of the respective areas in terms of a respective one of theplurality of parameters, and wherein performing the evaluation includesdetermining scores of the respective areas from the plurality of terraindatasets, and comparing the scores with a corresponding threshold scorethat defines a boundary between feasible and infeasible, thecorresponding threshold score being set based on one or more constraintsof the one or more robots.
 17. The method of claim 14, wherein receivingthe terrain data includes receiving one or more terrain datasetsembodied as one or more characteristic maps of the ground region. 18.The method of claim 12, wherein the map is expressed as a matrix offirst values and second values arranged in the cells to cover therespective areas of the ground region, the first values representingthose of the cells classified as feasible, and the second valuesrepresenting those of the cells classified as infeasible, and whereinsearching the map includes searching the matrix for the clustersexpressed as sub-matrices with all first values.
 19. The method of claim18, wherein the matrix is a first matrix of the first values and thesecond values that are elements of the first matrix, and searching thematrix includes: initializing a second matrix that corresponds to thefirst matrix; and traversing the first matrix beginning at a topleft-most one of the elements of the first matrix, and for each elementof the first matrix having the first value, updating a value of acorresponding element of the second matrix, wherein after the firstmatrix is traversed, the value of the corresponding element of thesecond matrix defines a square sub-matrix having a size of the value ineach dimension.
 20. The method of claim 18, wherein searching the matrixincludes searching the matrix for the sub-matrices with all first valuesthat are also of a target size or within a target range of sizes setbased on one or more constraints of the one or more robots.
 21. Themethod of claim 12, wherein ranking the sub-regions includes ranking thesub-regions in which one of the sub-regions designated as nominal isranked first, and others of the sub-regions are ranked according to thecost metric that includes distance from the others of the sub-regions tothe nominal.
 22. The method of claim 12, wherein ranking the sub-regionsincludes categorizing the sub-regions into categories to which thesub-regions belong, and ranking the sub-regions according to an order ofpriority of the categories.